package controle;

import java.util.List;

import modelo.bean.Disciplina;
import modelo.dao.GenericoDAO;
import modelo.dao.impl.DisciplinaDAOImpl;

public class DisciplinaControle {
	private Disciplina disciplina;
	private List<Disciplina> listaDeDisciplinas;

	private DisciplinaDAOImpl disciplinaDAOImpl;
	private GenericoDAO genericoDAO;

	public DisciplinaControle(Disciplina disciplina) {
		this.disciplina = disciplina;
		DAOdeDisciplina();
	}

	private void DAOdeDisciplina() {
		if (disciplina == null) {
			disciplina = new Disciplina();
		}
		if (disciplinaDAOImpl == null) {
			disciplinaDAOImpl = new DisciplinaDAOImpl(disciplina);
		}
		genericoDAO = disciplinaDAOImpl;
		genericoDAO.changeSeed(disciplina);
	}

	public boolean criar() {
		return genericoDAO.criar();
	}

	public Disciplina find(Long id) {
		disciplina = (Disciplina)genericoDAO.recuperar(id);
		return  disciplina;
	}

	@SuppressWarnings("unchecked")
	public List<Disciplina> listarTodos() {
		return (List<Disciplina>) genericoDAO.listarTodos();
	}

	public boolean excluir(Long id) {
		disciplina = (Disciplina) genericoDAO.recuperar(id);
		return genericoDAO.deletar();
	}

	public boolean alterar(Disciplina d) {
		disciplina = d;
		return genericoDAO.editar();
	}

	public Disciplina getDisciplina() {
		return disciplina;
	}

	public void setDisciplina(Disciplina disciplina) {
		this.disciplina = disciplina;
	}

	public List<Disciplina> getListaDeDisciplinas() {
		return listaDeDisciplinas;
	}

	public void setListaDeDisciplinas(List<Disciplina> listaDeDisciplinas) {
		this.listaDeDisciplinas = listaDeDisciplinas;
	}
}
